this._openCalendarItem.actor.can_focus = false;
vbox.add(this._openCalendarItem.actor, {y_align: St.Align.END, expand: true, y_fill: false});
- this._calendarSettings = new Gio.Settings({ schema: 'org.gnome.desktop.default-applications.office.calendar' });
- this._calendarSettings.connect('changed::exec',
- Lang.bind(this, this._calendarSettingsChanged));
- this._calendarSettingsChanged();
-
// Whenever the menu is opened, select today
this.menu.connect('open-state-changed', Lang.bind(this, function(menu, isOpen) {
if (isOpen) {
this._sessionUpdated();
},
- _calendarSettingsChanged: function() {
- let exec = this._calendarSettings.get_string('exec');
- let fullExec = GLib.find_program_in_path(exec);
- this._openCalendarItem.actor.visible = fullExec != null;
- },
-
_setEventsVisibility: function(visible) {
this._openCalendarItem.actor.visible = visible;
this._separator.visible = visible;
_onOpenCalendarActivate: function() {
this.menu.close();
- let tool = this._calendarSettings.get_string('exec');
- if (tool.length == 0 || tool.substr(0, 9) == 'evolution') {
- // TODO: pass the selected day
- let app = Shell.AppSystem.get_default().lookup_app('evolution-calendar.desktop');
- app.activate();
- } else {
- let needTerm = this._calendarSettings.get_boolean('needs-term');
- if (needTerm) {
- let terminalSettings = new Gio.Settings({ schema: 'org.gnome.desktop.default-applications.terminal' });
- let term = terminalSettings.get_string('exec');
- let arg = terminalSettings.get_string('exec-arg');
- if (arg != '')
- Util.spawn([term, arg, tool]);
- else
- Util.spawn([term, tool]);
- } else {
- Util.spawnCommandLine(tool)
- }
- }
+
+ let app = Gio.AppInfo.get_default_for_type('text/calendar', false);
+ app.launch([], global.create_app_launch_context());
}
});